/**
 * 项目名：五位一体化工安全信息平台
 * 日期：    2019-12-08 15:07:44
 * Copyright (c) 2015- joysuch-版权所有
 */

package com.joysuch.wwyt.bp.service;

import java.util.List;
import java.util.Set;

import javax.validation.Valid;
import com.joysuch.wwyt.bp.bean.contractor.BpContractorQueryBean;
import com.joysuch.wwyt.bp.bean.contractor.BpContractorStaffBean;
import com.joysuch.wwyt.bp.entity.contractor.BpContractorStaff;
import com.joysuch.wwyt.core.bean.BaseUserListBean;
import com.joysuch.wwyt.core.bean.BatchUploadResult;
import com.joysuch.wwyt.core.bean.SimpleUserBean;
import com.joysuch.wwyt.core.common.ajax.ResultBean;
import com.joysuch.wwyt.edu.bean.EduCertUserQueryBean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;

public interface BpContractorStaffService {

    ResultBean save(@Valid BpContractorStaffBean bean);

    ResultBean page(BpContractorQueryBean bean);

    ResultBean get(Long id);

    BpContractorStaff getById(Long id);

    ResultBean nullify(Long id);

    Page<BaseUserListBean> userModelPage(String name, Long contractorId, Pageable pageable);

    List<SimpleUserBean> getAllContractorSimpleList();

    ResultBean getEduContractorUserCert(EduCertUserQueryBean bean, Pageable pageable);

    String getNameById(Long id);

    List<Long> getStaffIdByNameContains(String userName);

    ResultBean locateSyncUser(Integer flag, List<Long> userIds);

    ResultBean getAllFields(Pageable pageable);

    BpContractorStaff editAlarmTemplate(Long staffId, Long templateId, String templateName);

    ResultBean getIdBySn(String sn);

    BatchUploadResult batchUploadIdImages(MultipartFile file, String type);

    void batchSyncData(List<BpContractorStaff> datas);

    //查询人员所能管理的承包商人员
    Set<Long> findStaffIds();

    Page<BaseUserListBean> userModelWfPage(String nameOrCode, Long companyId, Long tenantId, String orgCode, Pageable page);
}
